home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / phy-bstyles / nf.bst < prev    next >
Text File  |  1992-06-14  |  19KB  |  1,036 lines

  1. %% #define NF 1        % Thu Jun 14 13:23:18 1990
  2. %% #include "TEX$ROOT:[BIBTEX]PHYSICS.BTX"
  3.     % Please notify Charles Karney (Karney@Princeton.EDU)
  4.     % of any bugs, improvements, etc.
  5.  
  6.     % For Nuclear Fusion
  7.     % see Nuclear Fusion Vol. 28, No. 2 (1988),
  8.     % "Announcement [of] Guidelines for Bibliographical Citations"
  9.  
  10.     % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
  11.     % Copyright (C) 1985, all rights reserved.
  12.     % Copying of this file is authorized only if either
  13.     % (1) you make absolutely no changes to your copy, including name, or
  14.     % (2) if you do make changes, you name it something other than
  15.     % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  16.     % This restriction helps ensure that all standard styles are identical.
  17.     % The file btxbst.doc has the documentation for this style.
  18.  
  19. ENTRY
  20.   { address
  21.     author
  22.     booktitle
  23.     chapter
  24.     edition
  25.     editor
  26.     howpublished
  27.     institution
  28.     journal
  29.     key
  30.     month
  31.     note
  32.     number
  33.     organization
  34.     pages
  35.     publisher
  36.     school
  37.     series
  38.     title
  39.     type
  40.     volume
  41.     year
  42.   }
  43.   {}
  44.   { label }
  45.  
  46. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  47.  
  48. FUNCTION {init.state.consts}
  49. { #0 'before.all :=
  50.   #1 'mid.sentence :=
  51.   #2 'after.sentence :=
  52.   #3 'after.block :=
  53. }
  54.  
  55. STRINGS { s t }
  56.  
  57. FUNCTION {output.nonnull}
  58. { 's :=
  59.   output.state mid.sentence =
  60.     { ", " * write$ }
  61.     { output.state after.block =
  62.     { "," * write$
  63.       newline$
  64.       "\newblock " write$
  65.     }
  66.     { output.state before.all =
  67.         'write$
  68.         { add.period$ " " * write$ }
  69.       if$
  70.     }
  71.       if$
  72.       mid.sentence 'output.state :=
  73.     }
  74.   if$
  75.   s
  76. }
  77.  
  78. FUNCTION {output}
  79. { duplicate$ empty$
  80.     'pop$
  81.     'output.nonnull
  82.   if$
  83. }
  84.  
  85. FUNCTION {output.check}
  86. { 't :=
  87.   duplicate$ empty$
  88.     { pop$ "empty " t * " in " * cite$ * warning$ }
  89.     'output.nonnull
  90.   if$
  91. }
  92.  
  93. FUNCTION {output.bibitem}
  94. { newline$
  95.   "\bibitem{" write$
  96.   cite$ write$
  97.   "}" write$
  98.   newline$
  99.   ""
  100.   before.all 'output.state :=
  101. }
  102.  
  103. FUNCTION {fin.entry}
  104. { add.period$
  105.   write$
  106.   newline$
  107. }
  108.  
  109. FUNCTION {new.block}
  110. { output.state before.all =
  111.     'skip$
  112.     { after.block 'output.state := }
  113.   if$
  114. }
  115.  
  116. FUNCTION {new.sentence}
  117. { skip$
  118. }
  119.  
  120. FUNCTION {not}
  121. {   { #0 }
  122.     { #1 }
  123.   if$
  124. }
  125.  
  126. FUNCTION {and}
  127. {   'skip$
  128.     { pop$ #0 }
  129.   if$
  130. }
  131.  
  132. FUNCTION {or}
  133. {   { pop$ #1 }
  134.     'skip$
  135.   if$
  136. }
  137.  
  138. FUNCTION {new.block.checka}
  139. { empty$
  140.     'skip$
  141.     'new.block
  142.   if$
  143. }
  144.  
  145. FUNCTION {new.block.checkb}
  146. { empty$
  147.   swap$ empty$
  148.   and
  149.     'skip$
  150.     'new.block
  151.   if$
  152. }
  153.  
  154. FUNCTION {new.sentence.checka}
  155. { empty$
  156.     'skip$
  157.     'new.sentence
  158.   if$
  159. }
  160.  
  161. FUNCTION {new.sentence.checkb}
  162. { empty$
  163.   swap$ empty$
  164.   and
  165.     'skip$
  166.     'new.sentence
  167.   if$
  168. }
  169.  
  170. FUNCTION {field.or.null}
  171. { duplicate$ empty$
  172.     { pop$ "" }
  173.     'skip$
  174.   if$
  175. }
  176.  
  177. FUNCTION {emphasize}
  178. { duplicate$ empty$
  179.     { pop$ "" }
  180.     { "{\em " swap$ * "}" * }
  181.   if$
  182. }
  183.  
  184. FUNCTION {embolden}
  185. { duplicate$ empty$
  186.     { pop$ "" }
  187.     { "{\bf " swap$ * "}" * }
  188.   if$
  189. }
  190.  
  191. FUNCTION {paren}
  192. { duplicate$ empty$
  193.     { pop$ "" }
  194.     { "(" swap$ * ")" * }
  195.   if$
  196. }
  197.  
  198. INTEGERS { nameptr namesleft numnames }
  199.  
  200. INTEGERS { etal }
  201.  
  202. FUNCTION {format.names}
  203. { 's :=
  204.   #1 'nameptr :=
  205.   s num.names$ 'numnames :=
  206.   numnames #5 >
  207.   s numnames "{ll}" format.name$ "others" = numnames #3 > and
  208.   or 'etal :=
  209.   etal
  210.     { #3 #1 + 'namesleft := }
  211.     { numnames 'namesleft := }
  212.   if$
  213.     { namesleft #0 > }
  214.     { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=   % last name first
  215.       t "others" =
  216.     'skip$
  217.     { t "u" change.case$ 't := }
  218.       if$
  219.       nameptr #1 >
  220.     { namesleft #1 >
  221.         { ", " * t * }
  222.         { nameptr #2 >
  223.         { "," * }
  224.         'skip$
  225.           if$
  226.           t "others" =
  227.           etal or
  228.         { " et~al." * }
  229.         { " and " * t * }
  230.           if$
  231.         }
  232.       if$
  233.     }
  234.     't
  235.       if$
  236.       nameptr #1 + 'nameptr :=
  237.       namesleft #1 - 'namesleft :=
  238.     }
  239.   while$
  240. }
  241.  
  242. FUNCTION {format.authors}
  243. { author empty$
  244.     { "" }
  245.     { author format.names }
  246.   if$
  247. }
  248.  
  249. FUNCTION {format.editors}
  250. { editor empty$
  251.     { "" }
  252.     { editor format.names
  253.       editor num.names$ #1 >
  254.     { ", editors" * }
  255.     { ", editor" * }
  256.       if$
  257.     }
  258.   if$
  259. }
  260.  
  261. FUNCTION {format.title}
  262. { title empty$
  263.     { "" }
  264.     { title "t" change.case$ }
  265.   if$
  266. }
  267.  
  268. FUNCTION {n.dashify}
  269. { 't :=
  270.   ""
  271.     { t empty$ not }
  272.     { t #1 #1 substring$ "-" =
  273.     { t #1 #2 substring$ "--" = not
  274.         { "--" *
  275.           t #2 global.max$ substring$ 't :=
  276.         }
  277.         {   { t #1 #1 substring$ "-" = }
  278.         { "-" *
  279.           t #2 global.max$ substring$ 't :=
  280.         }
  281.           while$
  282.         }
  283.       if$
  284.     }
  285.     { t #1 #1 substring$ *
  286.       t #2 global.max$ substring$ 't :=
  287.     }
  288.       if$
  289.     }
  290.   while$
  291. }
  292.  
  293. FUNCTION {first.page}
  294. { 't :=
  295.   ""
  296.     {  t empty$ not t #1 #1 substring$ "-" = not and }
  297.     { t #1 #1 substring$ *
  298.       t #2 global.max$ substring$ 't :=
  299.     }
  300.   while$
  301. }
  302.  
  303. FUNCTION {format.date}
  304. { year empty$
  305.     { "" }
  306.     'year
  307.   if$
  308. }
  309.  
  310. FUNCTION {format.btitle}
  311. { title emphasize
  312. }
  313.  
  314. FUNCTION {tie.or.space.connect}
  315. { duplicate$ text.length$ #3 <
  316.     { "~" }
  317.     { " " }
  318.   if$
  319.   swap$ * *
  320. }
  321.  
  322. FUNCTION {either.or.check}
  323. { empty$
  324.     'pop$
  325.     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  326.   if$
  327. }
  328.  
  329. FUNCTION {format.bvolume}
  330. { volume empty$
  331.     { "" }
  332.     { "volume" volume tie.or.space.connect
  333.       series empty$
  334.     'skip$
  335.     { " of " * series emphasize * }
  336.       if$
  337.       "volume and number" number either.or.check
  338.     }
  339.   if$
  340. }
  341.  
  342. FUNCTION {format.number.series}
  343. { volume empty$
  344.     { number empty$
  345.     { series field.or.null }
  346.     { output.state mid.sentence =
  347.         { "number" }
  348.         { "Number" }
  349.       if$
  350.       number tie.or.space.connect
  351.       series empty$
  352.         { "there's a number but no series in " cite$ * warning$ }
  353.         { " in " * series * }
  354.       if$
  355.     }
  356.       if$
  357.     }
  358.     { "" }
  359.   if$
  360. }
  361.  
  362. FUNCTION {format.edition}
  363. { edition empty$
  364.     { "" }
  365.     { output.state mid.sentence =
  366.     { edition "l" change.case$ " edition" * }
  367.     { edition "t" change.case$ " edition" * }
  368.       if$
  369.     }
  370.   if$
  371. }
  372.  
  373. INTEGERS { multiresult }
  374.  
  375. FUNCTION {multi.page.check}
  376. { 't :=
  377.   #0 'multiresult :=
  378.     { multiresult not
  379.       t empty$ not
  380.       and
  381.     }
  382.     { t #1 #1 substring$
  383.       duplicate$ "-" =
  384.       swap$ duplicate$ "," =
  385.       swap$ "+" =
  386.       or or
  387.     { #1 'multiresult := }
  388.     { t #2 global.max$ substring$ 't := }
  389.       if$
  390.     }
  391.   while$
  392.   multiresult
  393. }
  394.  
  395. FUNCTION {format.pages}
  396. { pages empty$
  397.     { "" }
  398.     { pages multi.page.check
  399.     { "pp." pages n.dashify tie.or.space.connect }
  400.     { "p." pages tie.or.space.connect }
  401.       if$
  402.     }
  403.   if$
  404. }
  405.  
  406. FUNCTION {format.pages.a}
  407. { pages empty$
  408.     { "" }
  409.     { "p." pages first.page tie.or.space.connect }
  410.   if$
  411. }
  412.  
  413. FUNCTION {format.vol.num.pages}
  414. { volume field.or.null embolden
  415.   " " swap$ * *
  416.   format.date empty$
  417.     'skip$
  418.     { duplicate$ empty$
  419.     { pop$ format.date paren }
  420.         { " " * format.date paren * }
  421.       if$
  422.     }
  423.   if$
  424.   pages empty$
  425.     'skip$
  426.     { duplicate$ empty$
  427.     { pop$ format.pages.a }
  428.     { " " * pages first.page *}
  429.       if$
  430.     }
  431.   if$
  432. }
  433.  
  434. FUNCTION {format.chapter.pages}
  435. { chapter empty$
  436.     'format.pages
  437.     { type empty$
  438.     { "chapter" }
  439.     { type "l" change.case$ }
  440.       if$
  441.       chapter tie.or.space.connect
  442.       pages empty$
  443.     'skip$
  444.     { ", " * format.pages * }
  445.       if$
  446.     }
  447.   if$
  448. }
  449.  
  450. FUNCTION {format.in.ed.booktitle}
  451. { booktitle empty$
  452.     { "" }
  453.     { editor empty$
  454.     { "in " booktitle emphasize * }
  455.     { "in " format.editors * ", " * booktitle emphasize * }
  456.       if$
  457.     }
  458.   if$
  459. }
  460.  
  461. FUNCTION {empty.misc.check}
  462. { author empty$ title empty$ howpublished empty$
  463.   month empty$ year empty$ note empty$
  464.   and and and and and
  465.     { "all relevant fields are empty in " cite$ * warning$ }
  466.     'skip$
  467.   if$
  468. }
  469.  
  470. FUNCTION {format.thesis.type}
  471. { type empty$
  472.     'skip$
  473.     { pop$
  474.       type "t" change.case$
  475.     }
  476.   if$
  477. }
  478.  
  479. FUNCTION {format.tr.number}
  480. { type empty$
  481.     { "Technical Report" }
  482.     'type
  483.   if$
  484.   number empty$
  485.     { "t" change.case$ }
  486.     { number tie.or.space.connect }
  487.   if$
  488. }
  489.  
  490. FUNCTION {format.article.crossref}
  491. { key empty$
  492.     { journal empty$
  493.     { "need key or journal for " cite$ * " to crossref " * crossref *
  494.       warning$
  495.       ""
  496.     }
  497.     { "In " journal * }
  498.       if$
  499.     }
  500.     { "In " key * }
  501.   if$
  502.   " \cite{" * crossref * "}" *
  503. }
  504.  
  505. FUNCTION {format.crossref.editor}
  506. { editor #1 "{vv~}{ll}" format.name$
  507.   editor num.names$ duplicate$
  508.   #2 >
  509.     { pop$ " et~al." * }
  510.     { #2 <
  511.     'skip$
  512.     { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  513.         { " et~al." * }
  514.         { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  515.       if$
  516.     }
  517.       if$
  518.     }
  519.   if$
  520. }
  521.  
  522. FUNCTION {format.book.crossref}
  523. { volume empty$
  524.     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  525.       "In "
  526.     }
  527.     { "Volume" volume tie.or.space.connect
  528.       " of " *
  529.     }
  530.   if$
  531.   editor empty$
  532.   editor field.or.null author field.or.null =
  533.   or
  534.     { key empty$
  535.     { series empty$
  536.         { "need editor, key, or series for " cite$ * " to crossref " *
  537.           crossref * warning$
  538.           "" *
  539.         }
  540.         { "{\em " * series * "\/}" * }
  541.       if$
  542.     }
  543.     { key * }
  544.       if$
  545.     }
  546.     { format.crossref.editor * }
  547.   if$
  548.   " \cite{" * crossref * "}" *
  549. }
  550.  
  551. FUNCTION {format.incoll.inproc.crossref}
  552. { editor empty$
  553.   editor field.or.null author field.or.null =
  554.   or
  555.     { key empty$
  556.     { booktitle empty$
  557.         { "need editor, key, or booktitle for " cite$ * " to crossref " *
  558.           crossref * warning$
  559.           ""
  560.         }
  561.         { "In {\em " booktitle * "\/}" * }
  562.       if$
  563.     }
  564.     { "In " key * }
  565.       if$
  566.     }
  567.     { "In " format.crossref.editor * }
  568.   if$
  569.   " \cite{" * crossref * "}" *
  570. }
  571.  
  572. FUNCTION {article}
  573. { output.bibitem
  574.   format.authors "author" output.check
  575.   new.block
  576.   crossref missing$
  577.     { journal field.or.null
  578.       format.vol.num.pages output
  579.     }
  580.     { format.article.crossref output.nonnull
  581.       format.pages output
  582.     }
  583.   if$
  584.   new.block
  585.   note output
  586.   fin.entry
  587. }
  588.  
  589. FUNCTION {book}
  590. { output.bibitem
  591.   author empty$
  592.     { format.editors "author and editor" output.check }
  593.     { format.authors output.nonnull
  594.       crossref missing$
  595.     { "author and editor" editor either.or.check }
  596.     'skip$
  597.       if$
  598.     }
  599.   if$
  600.   new.block
  601.   format.btitle "title" output.check
  602.   crossref missing$
  603.     { format.bvolume output
  604.       new.block
  605.       format.number.series output
  606.       new.sentence
  607.       publisher "publisher" output.check
  608.       address output
  609.     }
  610.     { new.block
  611.       format.book.crossref output.nonnull
  612.     }
  613.   if$
  614.   format.edition output
  615.   format.date "year" output.check
  616.   new.block
  617.   note output
  618.   fin.entry
  619. }
  620.  
  621. FUNCTION {booklet}
  622. { output.bibitem
  623.   format.authors output
  624.   new.block
  625.   format.title "title" output.check
  626.   howpublished address new.block.checkb
  627.   howpublished output
  628.   address output
  629.   format.date output
  630.   new.block
  631.   note output
  632.   fin.entry
  633. }
  634.  
  635. FUNCTION {inbook}
  636. { output.bibitem
  637.   author empty$
  638.     { format.editors "author and editor" output.check }
  639.     { format.authors output.nonnull
  640.       crossref missing$
  641.     { "author and editor" editor either.or.check }
  642.     'skip$
  643.       if$
  644.     }
  645.   if$
  646.   new.block
  647.   format.btitle "title" output.check
  648.   crossref missing$
  649.     { format.bvolume output
  650.       format.chapter.pages "chapter and pages" output.check
  651.       new.block
  652.       format.number.series output
  653.       new.sentence
  654.       publisher "publisher" output.check
  655.       address output
  656.     }
  657.     { format.chapter.pages "chapter and pages" output.check
  658.       new.block
  659.       format.book.crossref output.nonnull
  660.     }
  661.   if$
  662.   format.edition output
  663.   format.date "year" output.check
  664.   new.block
  665.   note output
  666.   fin.entry
  667. }
  668.  
  669. FUNCTION {incollection}
  670. { output.bibitem
  671.   format.authors "author" output.check
  672.   new.block
  673.   format.title "title" output.check
  674.   new.block
  675.   crossref missing$
  676.     { format.in.ed.booktitle "booktitle" output.check
  677.       format.bvolume output
  678.       format.number.series output
  679.       format.chapter.pages output
  680.       new.sentence
  681.       publisher "publisher" output.check
  682.       address output
  683.       format.edition output
  684.       format.date "year" output.check
  685.     }
  686.     { format.incoll.inproc.crossref output.nonnull
  687.       format.chapter.pages output
  688.     }
  689.   if$
  690.   new.block
  691.   note output
  692.   fin.entry
  693. }
  694.  
  695. FUNCTION {inproceedings}
  696. { output.bibitem
  697.   format.authors "author" output.check
  698.   new.block
  699.   format.title "title" output.check
  700.   new.block
  701.   crossref missing$
  702.     { format.in.ed.booktitle "booktitle" output.check
  703.       format.bvolume output
  704.       format.number.series output
  705.       format.pages output
  706.       address empty$
  707.     { organization publisher new.sentence.checkb
  708.       organization output
  709.       publisher output
  710.       format.date "year" output.check
  711.     }
  712.     { address output.nonnull
  713.       format.date "year" output.check
  714.       new.sentence
  715.       organization output
  716.       publisher output
  717.     }
  718.       if$
  719.     }
  720.     { format.incoll.inproc.crossref output.nonnull
  721.       format.pages output
  722.     }
  723.   if$
  724.   new.block
  725.   note output
  726.   fin.entry
  727. }
  728.  
  729. FUNCTION {conference} { inproceedings }
  730.  
  731. FUNCTION {manual}
  732. { output.bibitem
  733.   author empty$
  734.     { organization empty$
  735.     'skip$
  736.     { organization output.nonnull
  737.       address output
  738.     }
  739.       if$
  740.     }
  741.     { format.authors output.nonnull }
  742.   if$
  743.   new.block
  744.   format.btitle "title" output.check
  745.   author empty$
  746.     { organization empty$
  747.     { address new.block.checka
  748.       address output
  749.     }
  750.     'skip$
  751.       if$
  752.     }
  753.     { organization address new.block.checkb
  754.       organization output
  755.       address output
  756.     }
  757.   if$
  758.   format.edition output
  759.   format.date output
  760.   new.block
  761.   note output
  762.   fin.entry
  763. }
  764.  
  765. FUNCTION {mastersthesis}
  766. { output.bibitem
  767.   format.authors "author" output.check
  768.   new.block
  769.   format.title "title" output.check
  770.   new.block
  771.   "Master's thesis" format.thesis.type output.nonnull
  772.   school "school" output.check
  773.   address output
  774.   format.date "year" output.check
  775.   new.block
  776.   note output
  777.   fin.entry
  778. }
  779.  
  780. FUNCTION {misc}
  781. { output.bibitem
  782.   format.authors output
  783.   title howpublished new.block.checkb
  784.   format.title output
  785.   howpublished new.block.checka
  786.   howpublished output
  787.   format.date output
  788.   new.block
  789.   note output
  790.   fin.entry
  791.   empty.misc.check
  792. }
  793.  
  794. FUNCTION {phdthesis}
  795. { output.bibitem
  796.   format.authors "author" output.check
  797.   new.block
  798.   format.btitle "title" output.check
  799.   new.block
  800.   "PhD thesis" format.thesis.type output.nonnull
  801.   school "school" output.check
  802.   address output
  803.   format.date "year" output.check
  804.   new.block
  805.   note output
  806.   fin.entry
  807. }
  808.  
  809. FUNCTION {proceedings}
  810. { output.bibitem
  811.   editor empty$
  812.     { organization output }
  813.     { format.editors output.nonnull }
  814.   if$
  815.   new.block
  816.   format.btitle "title" output.check
  817.   format.bvolume output
  818.   format.number.series output
  819.   address empty$
  820.     { editor empty$
  821.     { publisher new.sentence.checka }
  822.     { organization publisher new.sentence.checkb
  823.       organization output
  824.     }
  825.       if$
  826.       publisher output
  827.       format.date "year" output.check
  828.     }
  829.     { address output.nonnull
  830.       format.date "year" output.check
  831.       new.sentence
  832.       editor empty$
  833.     'skip$
  834.     { organization output }
  835.       if$
  836.       publisher output
  837.     }
  838.   if$
  839.   new.block
  840.   note output
  841.   fin.entry
  842. }
  843.  
  844. FUNCTION {techreport}
  845. { output.bibitem
  846.   format.authors "author" output.check
  847.   new.block
  848.   format.title "title" output.check
  849.   new.block
  850.   format.tr.number output.nonnull
  851.   institution "institution" output.check
  852.   address output
  853.   format.date "year" output.check
  854.   new.block
  855.   note output
  856.   fin.entry
  857. }
  858.  
  859. FUNCTION {unpublished}
  860. { output.bibitem
  861.   format.authors "author" output.check
  862.   new.block
  863.   format.title "title" output.check
  864.   new.block
  865.   note "note" output.check
  866.   format.date output
  867.   fin.entry
  868. }
  869.  
  870. FUNCTION {default.type} { misc }
  871.  
  872. MACRO {jan} {"Jan."}
  873.  
  874. MACRO {feb} {"Feb."}
  875.  
  876. MACRO {mar} {"Mar."}
  877.  
  878. MACRO {apr} {"Apr."}
  879.  
  880. MACRO {may} {"May"}
  881.  
  882. MACRO {jun} {"June"}
  883.  
  884. MACRO {jul} {"July"}
  885.  
  886. MACRO {aug} {"Aug."}
  887.  
  888. MACRO {sep} {"Sept."}
  889.  
  890. MACRO {oct} {"Oct."}
  891.  
  892. MACRO {nov} {"Nov."}
  893.  
  894. MACRO {dec} {"Dec."}
  895.  
  896. MACRO {acmcs} {"ACM Comput. Surv."}
  897.  
  898. MACRO {acta} {"Acta Inf."}
  899.  
  900. MACRO {cacm} {"Commun. ACM"}
  901.  
  902. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  903.  
  904. MACRO {ibmsj} {"IBM Syst.~J."}
  905.  
  906. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  907.  
  908. MACRO {ieeetc} {"IEEE Trans. Comput."}
  909.  
  910. MACRO {ieeetcad}
  911.  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  912.  
  913. MACRO {ipl} {"Inf. Process. Lett."}
  914.  
  915. MACRO {jacm} {"J.~ACM"}
  916.  
  917. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  918.  
  919. MACRO {scp} {"Sci. Comput. Programming"}
  920.  
  921. MACRO {sicomp} {"SIAM J. Comput."}
  922.  
  923. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  924.  
  925. MACRO {tods} {"ACM Trans. Database Syst."}
  926.  
  927. MACRO {tog} {"ACM Trans. Gr."}
  928.  
  929. MACRO {toms} {"ACM Trans. Math. Softw."}
  930.  
  931. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  932.  
  933. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  934.  
  935. MACRO {tcs} {"Theoretical Comput. Sci."}
  936.  
  937. MACRO {advp} {"Adv. Phys."}
  938. MACRO {ajp} {"Am. J. Phys."}
  939. MACRO {ao} {"Appl. Opt."}
  940. MACRO {apl} {"Appl. Phys. Lett."}
  941. MACRO {apj} {"Astrophys. J."}
  942. MACRO {baps} {"Bull. Am. Phys. Soc."}
  943. MACRO {cpc} {"Computer Phys. Comm."}
  944. MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"}
  945. MACRO {fed} {"Fusion Eng. Design"}
  946. MACRO {ft} {"Fusion Tech."}
  947. MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
  948. MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
  949. MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"}
  950. MACRO {ip} {"Infrared Phys."}
  951. MACRO {jap} {"J. Appl. Phys."}
  952. MACRO {jcp} {"J. Comput. Phys."}
  953. MACRO {jetp} {"Sov. Phys.-JETP"}
  954. MACRO {jfe} {"J. Fusion Energy"}
  955. MACRO {jfm} {"J. Fluid Mech."}
  956. MACRO {jgr} {"J. Geophys. Res."}
  957. MACRO {jmp} {"J. Math. Phys."}
  958. MACRO {jne} {"J. Nucl. Energy"}
  959. MACRO {jnec} {"J. Nucl. Energy, Part C"}
  960. MACRO {jnm} {"J. Nucl. Mater."}
  961. MACRO {josa} {"J. Opt. Soc. Am."}
  962. MACRO {jpp} {"J. Plasma Phys."}
  963. MACRO {jpsj} {"J. Phys. Soc. Jpn"}
  964. MACRO {jvst} {"J. Vac. Sci. Technol."}
  965. MACRO {nedf} {"Nucl. Eng. Design/Fusion"}
  966. MACRO {nf} {"Nucl. Fusion"}
  967. MACRO {nim} {"Nucl. Instrum. Methods"}
  968. MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"}
  969. MACRO {nt/f} {"Nucl. Tech./Fusion"}
  970. MACRO {pf} {"Phys. Fluids"}
  971. MACRO {pfa} {"Phys. Fluids A"}
  972. MACRO {pfb} {"Phys. Fluids B"}
  973. MACRO {pl} {"Phys. Lett."}
  974. MACRO {pla} {"Phys. Lett. A"}
  975. MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
  976. MACRO {pp} {"Plasma Phys."}
  977. MACRO {ppcf} {"Plasma Phys. Controlled Fusion"}
  978. MACRO {prl} {"Phys. Rev. Lett."}
  979. MACRO {pr} {"Phys. Rev."}
  980. MACRO {pra} {"Phys. Rev. A"}
  981. MACRO {ps} {"Physica Scripta"}
  982. MACRO {rmp} {"Rev. Mod. Phys."}
  983. MACRO {rsi} {"Rev. Sci. Instrum."}
  984. MACRO {sjpp} {"Sov. J. Plasma Phys."}
  985. MACRO {spd} {"Sov. Phys.-Dokl."}
  986. MACRO {sptp} {"Sov. Phys.-Tech. Phys."}
  987. MACRO {spu} {"Sov. Phys.-Usp."}
  988.  
  989. READ
  990.  
  991. STRINGS { longest.label }
  992.  
  993. INTEGERS { number.label longest.label.width }
  994.  
  995. FUNCTION {initialize.longest.label}
  996. { "" 'longest.label :=
  997.   #1 'number.label :=
  998.   #0 'longest.label.width :=
  999. }
  1000.  
  1001. FUNCTION {longest.label.pass}
  1002. { number.label int.to.str$ 'label :=
  1003.   number.label #1 + 'number.label :=
  1004.   label width$ longest.label.width >
  1005.     { label 'longest.label :=
  1006.       label width$ 'longest.label.width :=
  1007.     }
  1008.     'skip$
  1009.   if$
  1010. }
  1011.  
  1012. EXECUTE {initialize.longest.label}
  1013.  
  1014. ITERATE {longest.label.pass}
  1015.  
  1016. FUNCTION {begin.bib}
  1017. { preamble$ empty$
  1018.     'skip$
  1019.     { preamble$ write$ newline$ }
  1020.   if$
  1021.   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  1022. }
  1023.  
  1024. EXECUTE {begin.bib}
  1025.  
  1026. EXECUTE {init.state.consts}
  1027.  
  1028. ITERATE {call.type$}
  1029.  
  1030. FUNCTION {end.bib}
  1031. { newline$
  1032.   "\end{thebibliography}" write$ newline$
  1033. }
  1034.  
  1035. EXECUTE {end.bib}
  1036.